import { getUserMenuList } from '@/api/user'

const state = {
  init: false, // 是否已加载用户权限信息
  menuList: [], // 用户所拥有的菜单权限
  buttonList: [] // 用户按钮权限
}

// 改变状态值
const mutations = {
  SET_SYSTEM_MENU: (state, data) => {
    state.init = true // 已加载用户权限
    state.menuList = data.menuTreeList
    state.buttonList = data.buttonList
  }
}

// 定义行为
const actions = {
  // 获取用户菜单和按钮权限
  GetUserMenu({ commit }) {
    return new Promise((resolve, reject) => {
      // 发送请求获取权限信息
      getUserMenuList().then(response => {
        commit('SET_SYSTEM_MENU', response.data)
        resolve()
      }).catch(error => {
        reject(error)
      })
    })
  }
}

export default {
  namespaced: true, // 引用指定模块名 /menu/GetUserMenu
  state,
  mutations,
  actions
}
